package inventory.utils;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

/**
 * @author sxt
 * @create 2019-11-09 12:53
 */
public class SelectingCondition {

    @ApiModel(value = "物料信息查询条件合集")
   public static class  MaterialCondition extends SelectingCondition{

        //查询对象条件
        @ApiModelProperty(value = "查询对象id")
        private String itemId;
        @ApiModelProperty(value = "查询对象name")
        private String itemName;
        @ApiModelProperty(value = "类型名")
        private String typicalName;     //类型映射
        @ApiModelProperty(value = "类型id")
        private String typicalId;     //类型映射
        @ApiModelProperty(value = "品牌")
        private String brand;           //品牌
        @ApiModelProperty(value = "型号")
        private String typicalModel;    //型号
        @ApiModelProperty(value = "目录名")
        private String categoryName;    //目录名
        @ApiModelProperty(value = "目录id")
        private String categoryId;    //目录id
        @ApiModelProperty(value = "目录说明")
        private String categoryContext; //目录说明
        @ApiModelProperty(value = "添加时间（出入库时间）")
        private Date inTime;            //添加时间（入库时间）
        @ApiModelProperty(value = "串号")
        private String IMEI;             //串号

        //操作员相关条件
        @ApiModelProperty(value = "操作者id")
        private String operatorId;
        @ApiModelProperty(value = "操作者工号")
        private String operatorWorkId;
        @ApiModelProperty(value = "操作者name")
        private String operatorUsername;
        //仓库相关条件
        @ApiModelProperty(value = "源仓库id")
        private String sourceRepositoryId;
        @ApiModelProperty(value = "目标仓库id")
        private String targetRepositoryId;
        @ApiModelProperty(value = "源仓库名")
        private String sourceRepositoryName;
        @ApiModelProperty(value = "目标仓库名")
        private String targetRepositoryName;
        @ApiModelProperty(value = "操作者对应角色id",required = true)
        private String roleId;
        @ApiModelProperty(value = "操作者角色")
        private String role;



       public String getRoleId() {
           return roleId;
       }

       public void setRoleId(String roleId) {
           this.roleId = roleId;
       }

       public String getRole() {
           return role;
       }

       public void setRole(String role) {
           this.role = role;
       }

       public String getIMEI() {
           return IMEI;
       }

       public void setIMEI(String IMEI) {
           this.IMEI = IMEI;
       }

       public String getTypicalId() {
           return typicalId;
       }

       public void setTypicalId(String typicalId) {
           this.typicalId = typicalId;
       }

       public String getCategoryId() {
           return categoryId;
       }

       public void setCategoryId(String categoryId) {
           this.categoryId = categoryId;
       }

       public String getItemId() {
            return itemId;
        }

        public void setItemId(String itemId) {
            this.itemId = itemId;
        }

        public String getItemName() {
            return itemName;
        }

        public void setItemName(String itemName) {
            this.itemName = itemName;
        }

        public String getOperatorId() {
            return operatorId;
        }

        public void setOperatorId(String operatorId) {
            this.operatorId = operatorId;
        }

        public String getOperatorWorkId() {
            return operatorWorkId;
        }

        public void setOperatorWorkId(String operatorWorkId) {
            this.operatorWorkId = operatorWorkId;
        }

        public String getOperatorUsername() {
            return operatorUsername;
        }

        public void setOperatorUsername(String operatorUsername) {
            this.operatorUsername = operatorUsername;
        }

        public String getSourceRepositoryId() {
            return sourceRepositoryId;
        }

        public void setSourceRepositoryId(String sourceRepositoryId) {
            this.sourceRepositoryId = sourceRepositoryId;
        }

        public String getTargetRepositoryId() {
            return targetRepositoryId;
        }

        public void setTargetRepositoryId(String targetRepositoryId) {
            this.targetRepositoryId = targetRepositoryId;
        }

        public String getSourceRepositoryName() {
            return sourceRepositoryName;
        }

        public void setSourceRepositoryName(String sourceRepositoryName) {
            this.sourceRepositoryName = sourceRepositoryName;
        }

        public String getTargetRepositoryName() {
            return targetRepositoryName;
        }

        public void setTargetRepositoryName(String targetRepositoryName) {
            this.targetRepositoryName = targetRepositoryName;
        }

        public String getTypicalName() {
            return typicalName;
        }

        public void setTypicalName(String typicalName) {
            this.typicalName = typicalName;
        }

        public String getBrand() {
            return brand;
        }

        public void setBrand(String brand) {
            this.brand = brand;
        }

        public String getTypicalModel() {
            return typicalModel;
        }

        public void setTypicalModel(String typicalModel) {
            this.typicalModel = typicalModel;
        }

        public String getCategoryName() {
            return categoryName;
        }

        public void setCategoryName(String categoryName) {
            this.categoryName = categoryName;
        }

        public String getCategoryContext() {
            return categoryContext;
        }

        public void setCategoryContext(String categoryContext) {
            this.categoryContext = categoryContext;
        }

        public Date getInTime() {
            return inTime;
        }

        public void setInTime(Date inTime) {
            this.inTime = inTime;
        }


    }


    @ApiModel(value = "销库信息查询条件合集")
    @Getter
    @Setter
    @ToString
    public static class  SaleRrequestCondition extends SelectingCondition{

        @ApiModelProperty(value = "销库申请记录id")
        private String saleId;
        @ApiModelProperty(value = "用户id")
        private String userId;
        @ApiModelProperty(value = "类型id（typicalId）")
        private String typicalId;
        @ApiModelProperty(value = "物料id（物料出库才填写,由于物料是根据id销库而其他两种是根据串号销库）")
        private String stuff_id;
        @ApiModelProperty(value = "对应仓库id")
        private String repositoryId;

        @ApiModelProperty(value = "如果是终端和设备，填写这个参数，代表串号")
        private String serialNum;
        @ApiModelProperty(value = "请求处理状态,发送请求不用传，默认0：未处理，1：已处理",hidden = true)
        private Integer status = 0;
        @ApiParam(value = "接收此申请的上级id")
        private String roleId;
    }

}
